﻿
using Iesi.Collections.Generic;
using Samsara.Base.Core.Attributes;
using Samsara.Base.Core.Entities;

namespace Samsara.CustomerContext.Core.Entities
{
    public class CustomerInfrastructureServerComputer : BaseEntity
    {
        private ISet<CustomerInfrastructureServerComputerDBMS> customerInfrastructureServerComputerDBMSs;

        public CustomerInfrastructureServerComputer()
        {
            CustomerInfrastructureServerComputerId = -1;
        }

        [PrimaryKey]
        public virtual int CustomerInfrastructureServerComputerId
        {
            get;
            set;
        }

        public virtual CustomerInfrastructure CustomerInfrastructure
        {
            get;
            set;
        }

        public virtual string SerialNumber
        {
            get;
            set;
        }

        public virtual string ManufacturerReferenceNumber
        {
            get;
            set;
        }

        public virtual string CPU
        {
            get;
            set;
        }

        public virtual string RAM
        {
            get;
            set;
        }

        public virtual string StorageSystem
        {
            get;
            set;
        }

        public virtual string Utilization
        {
            get;
            set;
        }

        public virtual string Scalability
        {
            get;
            set;
        }

        public virtual ComputerBrand ComputerBrand
        {
            get;
            set;
        }

        public virtual string ServerModel
        {
            get;
            set;
        }

        public virtual OperativeSystem OperativeSystem
        {
            get;
            set;
        }

        public virtual ISet<CustomerInfrastructureServerComputerDBMS> CustomerInfrastructureServerComputerDBMSs
        {
            get
            {
                if (this.customerInfrastructureServerComputerDBMSs == null)
                    this.customerInfrastructureServerComputerDBMSs = new HashedSet<CustomerInfrastructureServerComputerDBMS>();

                return this.customerInfrastructureServerComputerDBMSs;
            }
            set
            {
                this.customerInfrastructureServerComputerDBMSs = value;
            }
        }
    }
}